(0) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
head(cons(X, XS)) → X
2nd(cons(X, XS)) → head(activate(XS))
take(0, XS) → nil
take(s(N), cons(X, XS)) → cons(X, n__take(N, activate(XS)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
from(X) → n__from(X)
s(X) → n__s(X)
take(X1, X2) → n__take(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__take(X1, X2)) → take(activate(X1), activate(X2))
activate(X) → X

Rewrite Strategy: INNERMOST

(1) DependencyGraphProof (BOTH BOUNDS(ID, ID) transformation)

The following rules are not reachable from basic terms in the dependency graph and can be removed:
sel(s(N), cons(X, XS)) → sel(N, activate(XS))

(2) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

sel(0, cons(X, XS)) → X
head(cons(X, XS)) → X
take(s(N), cons(X, XS)) → cons(X, n__take(N, activate(XS)))
activate(X) → X
activate(n__s(X)) → s(activate(X))
take(X1, X2) → n__take(X1, X2)
activate(n__from(X)) → from(activate(X))
from(X) → cons(X, n__from(n__s(X)))
take(0, XS) → nil
from(X) → n__from(X)
activate(n__take(X1, X2)) → take(activate(X1), activate(X2))
s(X) → n__s(X)
2nd(cons(X, XS)) → head(activate(XS))

Rewrite Strategy: INNERMOST

(3) TrsToWeightedTrsProof (BOTH BOUNDS(ID, ID) transformation)

Transformed TRS to weighted TRS

(4) Obligation:

The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

sel(0, cons(X, XS)) → X [1]
head(cons(X, XS)) → X [1]
take(s(N), cons(X, XS)) → cons(X, n__take(N, activate(XS))) [1]
activate(X) → X [1]
activate(n__s(X)) → s(activate(X)) [1]
take(X1, X2) → n__take(X1, X2) [1]
activate(n__from(X)) → from(activate(X)) [1]
from(X) → cons(X, n__from(n__s(X))) [1]
take(0, XS) → nil [1]
from(X) → n__from(X) [1]
activate(n__take(X1, X2)) → take(activate(X1), activate(X2)) [1]
s(X) → n__s(X) [1]
2nd(cons(X, XS)) → head(activate(XS)) [1]

Rewrite Strategy: INNERMOST

(5) InnermostUnusableRulesProof (BOTH BOUNDS(ID, ID) transformation)

Removed the following rules with non-basic left-hand side, as they cannot be used in innermost rewriting:

take(s(N), cons(X, XS)) → cons(X, n__take(N, activate(XS))) [1]

Due to the following rules that have to be used instead:

s(X) → n__s(X) [1]

(6) Obligation:

The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

sel(0, cons(X, XS)) → X [1]
head(cons(X, XS)) → X [1]
activate(X) → X [1]
activate(n__s(X)) → s(activate(X)) [1]
take(X1, X2) → n__take(X1, X2) [1]
activate(n__from(X)) → from(activate(X)) [1]
from(X) → cons(X, n__from(n__s(X))) [1]
take(0, XS) → nil [1]
from(X) → n__from(X) [1]
activate(n__take(X1, X2)) → take(activate(X1), activate(X2)) [1]
s(X) → n__s(X) [1]
2nd(cons(X, XS)) → head(activate(XS)) [1]

Rewrite Strategy: INNERMOST

(7) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)

Infered types.

(8) Obligation:

Runtime Complexity Weighted TRS with Types.
The TRS R consists of the following rules:

sel(0, cons(X, XS)) → X [1]
head(cons(X, XS)) → X [1]
activate(X) → X [1]
activate(n__s(X)) → s(activate(X)) [1]
take(X1, X2) → n__take(X1, X2) [1]
activate(n__from(X)) → from(activate(X)) [1]
from(X) → cons(X, n__from(n__s(X))) [1]
take(0, XS) → nil [1]
from(X) → n__from(X) [1]
activate(n__take(X1, X2)) → take(activate(X1), activate(X2)) [1]
s(X) → n__s(X) [1]
2nd(cons(X, XS)) → head(activate(XS)) [1]

The TRS has the following type information:
sel :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
0 :: 0:cons:n__s:n__take:n__from:nil
cons :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
head :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
activate :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__s :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
s :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
take :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__take :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__from :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
from :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
nil :: 0:cons:n__s:n__take:n__from:nil
2nd :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil

Rewrite Strategy: INNERMOST

(9) CompletionProof (UPPER BOUND(ID) transformation)

The transformation into a RNTS is sound, since:

(a) The obligation is a constructor system where every type has a constant constructor,

(b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols:


sel
head
2nd

(c) The following functions are completely defined:

activate
from
take
s

Due to the following rules being added:
none

And the following fresh constants: none

(10) Obligation:

Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is:

Runtime Complexity Weighted TRS with Types.
The TRS R consists of the following rules:

sel(0, cons(X, XS)) → X [1]
head(cons(X, XS)) → X [1]
activate(X) → X [1]
activate(n__s(X)) → s(activate(X)) [1]
take(X1, X2) → n__take(X1, X2) [1]
activate(n__from(X)) → from(activate(X)) [1]
from(X) → cons(X, n__from(n__s(X))) [1]
take(0, XS) → nil [1]
from(X) → n__from(X) [1]
activate(n__take(X1, X2)) → take(activate(X1), activate(X2)) [1]
s(X) → n__s(X) [1]
2nd(cons(X, XS)) → head(activate(XS)) [1]

The TRS has the following type information:
sel :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
0 :: 0:cons:n__s:n__take:n__from:nil
cons :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
head :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
activate :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__s :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
s :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
take :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__take :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__from :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
from :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
nil :: 0:cons:n__s:n__take:n__from:nil
2nd :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil

Rewrite Strategy: INNERMOST

(11) NarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Narrowed the inner basic terms of all right-hand sides by a single narrowing step.

(12) Obligation:

Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is:

Runtime Complexity Weighted TRS with Types.
The TRS R consists of the following rules:

sel(0, cons(X, XS)) → X [1]
head(cons(X, XS)) → X [1]
activate(X) → X [1]
activate(n__s(X)) → s(X) [2]
activate(n__s(n__s(X'))) → s(s(activate(X'))) [2]
activate(n__s(n__from(X''))) → s(from(activate(X''))) [2]
activate(n__s(n__take(X1', X2'))) → s(take(activate(X1'), activate(X2'))) [2]
take(X1, X2) → n__take(X1, X2) [1]
activate(n__from(X)) → from(X) [2]
activate(n__from(n__s(X3))) → from(s(activate(X3))) [2]
activate(n__from(n__from(X4))) → from(from(activate(X4))) [2]
activate(n__from(n__take(X1'', X2''))) → from(take(activate(X1''), activate(X2''))) [2]
from(X) → cons(X, n__from(n__s(X))) [1]
take(0, XS) → nil [1]
from(X) → n__from(X) [1]
activate(n__take(X1, X2)) → take(X1, X2) [3]
activate(n__take(X1, n__s(X7))) → take(X1, s(activate(X7))) [3]
activate(n__take(X1, n__from(X8))) → take(X1, from(activate(X8))) [3]
activate(n__take(X1, n__take(X12, X22))) → take(X1, take(activate(X12), activate(X22))) [3]
activate(n__take(n__s(X5), X2)) → take(s(activate(X5)), X2) [3]
activate(n__take(n__s(X5), n__s(X9))) → take(s(activate(X5)), s(activate(X9))) [3]
activate(n__take(n__s(X5), n__from(X10))) → take(s(activate(X5)), from(activate(X10))) [3]
activate(n__take(n__s(X5), n__take(X13, X23))) → take(s(activate(X5)), take(activate(X13), activate(X23))) [3]
activate(n__take(n__from(X6), X2)) → take(from(activate(X6)), X2) [3]
activate(n__take(n__from(X6), n__s(X14))) → take(from(activate(X6)), s(activate(X14))) [3]
activate(n__take(n__from(X6), n__from(X15))) → take(from(activate(X6)), from(activate(X15))) [3]
activate(n__take(n__from(X6), n__take(X16, X24))) → take(from(activate(X6)), take(activate(X16), activate(X24))) [3]
activate(n__take(n__take(X11, X21), X2)) → take(take(activate(X11), activate(X21)), X2) [3]
activate(n__take(n__take(X11, X21), n__s(X17))) → take(take(activate(X11), activate(X21)), s(activate(X17))) [3]
activate(n__take(n__take(X11, X21), n__from(X18))) → take(take(activate(X11), activate(X21)), from(activate(X18))) [3]
activate(n__take(n__take(X11, X21), n__take(X19, X25))) → take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) [3]
s(X) → n__s(X) [1]
2nd(cons(X, XS)) → head(XS) [2]
2nd(cons(X, n__s(X20))) → head(s(activate(X20))) [2]
2nd(cons(X, n__from(X26))) → head(from(activate(X26))) [2]
2nd(cons(X, n__take(X110, X27))) → head(take(activate(X110), activate(X27))) [2]

The TRS has the following type information:
sel :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
0 :: 0:cons:n__s:n__take:n__from:nil
cons :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
head :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
activate :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__s :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
s :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
take :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__take :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
n__from :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
from :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil
nil :: 0:cons:n__s:n__take:n__from:nil
2nd :: 0:cons:n__s:n__take:n__from:nil → 0:cons:n__s:n__take:n__from:nil

Rewrite Strategy: INNERMOST

(13) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID) transformation)

Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction.
The constant constructors are abstracted as follows:

0 => 0
nil => 1

(14) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 2 }→ head(XS) :|: z = 1 + X + XS, X >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ X :|: X >= 0, z = X
activate(z) -{ 3 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(X) :|: z = 1 + X, X >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(X'))) :|: X' >= 0, z = 1 + (1 + X')
activate(z) -{ 2 }→ s(from(activate(X''))) :|: z = 1 + (1 + X''), X'' >= 0
activate(z) -{ 2 }→ from(X) :|: z = 1 + X, X >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(X3))) :|: z = 1 + (1 + X3), X3 >= 0
activate(z) -{ 2 }→ from(from(activate(X4))) :|: z = 1 + (1 + X4), X4 >= 0
from(z) -{ 1 }→ 1 + X :|: X >= 0, z = X
from(z) -{ 1 }→ 1 + X + (1 + (1 + X)) :|: X >= 0, z = X
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + X :|: X >= 0, z = X
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z' = XS, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2

(15) InliningProof (UPPER BOUND(ID) transformation)

Inlined the following terminating rules on right-hand sides where appropriate:

head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
take(z, z') -{ 1 }→ 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2
take(z, z') -{ 1 }→ 1 :|: z' = XS, z = 0, XS >= 0
from(z) -{ 1 }→ 1 + X + (1 + (1 + X)) :|: X >= 0, z = X
from(z) -{ 1 }→ 1 + X :|: X >= 0, z = X
s(z) -{ 1 }→ 1 + X :|: X >= 0, z = X

(16) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ X :|: X >= 0, z = X
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(X'))) :|: X' >= 0, z = 1 + (1 + X')
activate(z) -{ 2 }→ s(from(activate(X''))) :|: z = 1 + (1 + X''), X'' >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(X3))) :|: z = 1 + (1 + X3), X3 >= 0
activate(z) -{ 2 }→ from(from(activate(X4))) :|: z = 1 + (1 + X4), X4 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z = 1 + X, X >= 0, X' >= 0, X = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z = 1 + X, X >= 0, X' >= 0, X = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + X :|: X >= 0, z = X
from(z) -{ 1 }→ 1 + X + (1 + (1 + X)) :|: X >= 0, z = X
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + X :|: X >= 0, z = X
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z' = XS, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2

(17) SimplificationProof (BOTH BOUNDS(ID, ID) transformation)

Simplified the RNTS by moving equalities from the constraints into the right-hand sides.

(18) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

(19) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID) transformation)

Found the following analysis order by SCC decomposition:

{ from }
{ sel }
{ head }
{ take }
{ s }
{ activate }
{ 2nd }

(20) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {from}, {sel}, {head}, {take}, {s}, {activate}, {2nd}

(21) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: from
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 3 + 2·z

(22) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {from}, {sel}, {head}, {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: ?, size: O(n1) [3 + 2·z]

(23) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: from
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(24) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {sel}, {head}, {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]

(25) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(26) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {sel}, {head}, {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]

(27) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using KoAT for: sel
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z'

(28) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {sel}, {head}, {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: ?, size: O(n1) [z']

(29) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: sel
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(30) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {head}, {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']

(31) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(32) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {head}, {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']

(33) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using KoAT for: head
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: z

(34) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {head}, {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: ?, size: O(n1) [z]

(35) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: head
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(36) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]

(37) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(38) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]

(39) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: take
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 1 + z + z'

(40) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {take}, {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: ?, size: O(n1) [1 + z + z']

(41) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: take
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(42) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']

(43) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(44) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']

(45) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: s
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 1 + z

(46) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {s}, {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']
s: runtime: ?, size: O(n1) [1 + z]

(47) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using CoFloCo for: s
after applying outer abstraction to obtain an ITS,
resulting in: O(1) with polynomial bound: 1

(48) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']
s: runtime: O(1) [1], size: O(n1) [1 + z]

(49) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(50) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']
s: runtime: O(1) [1], size: O(n1) [1 + z]

(51) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using KoAT for: activate
after applying outer abstraction to obtain an ITS,
resulting in: EXP with polynomial bound: ?

(52) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {activate}, {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']
s: runtime: O(1) [1], size: O(n1) [1 + z]
activate: runtime: ?, size: EXP

(53) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using KoAT for: activate
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 108 + 216·z

(54) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 2 }→ head(take(activate(X110), activate(X27))) :|: X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 2 }→ head(s(activate(X20))) :|: X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
2nd(z) -{ 2 }→ head(from(activate(X26))) :|: z = 1 + X + (1 + X26), X26 >= 0, X >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 3 }→ take(X1, take(activate(X12), activate(X22))) :|: X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 3 }→ take(X1, s(activate(X7))) :|: z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 3 }→ take(X1, from(activate(X8))) :|: X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), X2) :|: z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), take(activate(X19), activate(X25))) :|: X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), s(activate(X17))) :|: z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ 3 }→ take(take(activate(X11), activate(X21)), from(activate(X18))) :|: z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), X2) :|: X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), take(activate(X13), activate(X23))) :|: X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 3 }→ take(s(activate(X5)), s(activate(X9))) :|: X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 3 }→ take(s(activate(X5)), from(activate(X10))) :|: X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 3 }→ take(from(activate(X6)), X2) :|: X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), take(activate(X16), activate(X24))) :|: X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), s(activate(X14))) :|: z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 3 }→ take(from(activate(X6)), from(activate(X15))) :|: X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 2 }→ s(take(activate(X1'), activate(X2'))) :|: z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 2 }→ s(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ s(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(take(activate(X1''), activate(X2''))) :|: X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 2 }→ from(s(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 2 }→ from(from(activate(z - 2))) :|: z - 2 >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']
s: runtime: O(1) [1], size: O(n1) [1 + z]
activate: runtime: O(n1) [108 + 216·z], size: EXP

(55) ResultPropagationProof (UPPER BOUND(ID) transformation)

Applied inner abstraction using the recently inferred runtime/size bounds where possible.

(56) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 220 + 216·X110 + 216·X27 }→ s16 :|: s13 >= 0, s13 <= inf6, s14 >= 0, s14 <= inf7, s15 >= 0, s15 <= 1 * s13 + 1 * s14 + 1, s16 >= 0, s16 <= 1 * s15, X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 112 + 216·X26 }→ s22 :|: s20 >= 0, s20 <= inf9, s21 >= 0, s21 <= 2 * s20 + 3, s22 >= 0, s22 <= 1 * s21, z = 1 + X + (1 + X26), X26 >= 0, X >= 0
2nd(z) -{ 112 + 216·X20 }→ s55 :|: s53 >= 0, s53 <= inf23, s54 >= 0, s54 <= 1 * s53 + 1, s55 >= 0, s55 <= 1 * s54, X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
activate(z) -{ 221 + 216·X12 + 216·X22 }→ s1 :|: s >= 0, s <= inf, s' >= 0, s' <= inf', s'' >= 0, s'' <= 1 * s + 1 * s' + 1, s1 >= 0, s1 <= 1 * X1 + 1 * s'' + 1, X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 438 + 216·X11 + 216·X19 + 216·X21 + 216·X25 }→ s12 :|: s6 >= 0, s6 <= inf2, s7 >= 0, s7 <= inf3, s8 >= 0, s8 <= 1 * s6 + 1 * s7 + 1, s9 >= 0, s9 <= inf4, s10 >= 0, s10 <= inf5, s11 >= 0, s11 <= 1 * s9 + 1 * s10 + 1, s12 >= 0, s12 <= 1 * s8 + 1 * s11 + 1, X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ -320 + 216·z }→ s19 :|: s17 >= 0, s17 <= inf8, s18 >= 0, s18 <= 2 * s17 + 3, s19 >= 0, s19 <= 2 * s18 + 3, z - 2 >= 0
activate(z) -{ 220 + 216·X1'' + 216·X2'' }→ s26 :|: s23 >= 0, s23 <= inf10, s24 >= 0, s24 <= inf11, s25 >= 0, s25 <= 1 * s23 + 1 * s24 + 1, s26 >= 0, s26 <= 2 * s25 + 3, X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 113 + 216·X8 }→ s29 :|: s27 >= 0, s27 <= inf12, s28 >= 0, s28 <= 2 * s27 + 3, s29 >= 0, s29 <= 1 * X1 + 1 * s28 + 1, X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 113 + 216·X6 }→ s32 :|: s30 >= 0, s30 <= inf13, s31 >= 0, s31 <= 2 * s30 + 3, s32 >= 0, s32 <= 1 * s31 + 1 * X2 + 1, X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 222 + 216·X15 + 216·X6 }→ s37 :|: s33 >= 0, s33 <= inf14, s34 >= 0, s34 <= 2 * s33 + 3, s35 >= 0, s35 <= inf15, s36 >= 0, s36 <= 2 * s35 + 3, s37 >= 0, s37 <= 1 * s34 + 1 * s36 + 1, X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 330 + 216·X16 + 216·X24 + 216·X6 }→ s43 :|: s38 >= 0, s38 <= inf16, s39 >= 0, s39 <= 2 * s38 + 3, s40 >= 0, s40 <= inf17, s41 >= 0, s41 <= inf18, s42 >= 0, s42 <= 1 * s40 + 1 * s41 + 1, s43 >= 0, s43 <= 1 * s39 + 1 * s42 + 1, X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 330 + 216·X11 + 216·X18 + 216·X21 }→ s49 :|: s44 >= 0, s44 <= inf19, s45 >= 0, s45 <= inf20, s46 >= 0, s46 <= 1 * s44 + 1 * s45 + 1, s47 >= 0, s47 <= inf21, s48 >= 0, s48 <= 2 * s47 + 3, s49 >= 0, s49 <= 1 * s46 + 1 * s48 + 1, z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 221 + 216·X11 + 216·X21 }→ s5 :|: s2 >= 0, s2 <= inf'', s3 >= 0, s3 <= inf1, s4 >= 0, s4 <= 1 * s2 + 1 * s3 + 1, s5 >= 0, s5 <= 1 * s4 + 1 * X2 + 1, z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ -320 + 216·z }→ s52 :|: s50 >= 0, s50 <= inf22, s51 >= 0, s51 <= 1 * s50 + 1, s52 >= 0, s52 <= 1 * s51 + 1, z - 2 >= 0
activate(z) -{ 220 + 216·X1' + 216·X2' }→ s59 :|: s56 >= 0, s56 <= inf24, s57 >= 0, s57 <= inf25, s58 >= 0, s58 <= 1 * s56 + 1 * s57 + 1, s59 >= 0, s59 <= 1 * s58 + 1, z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 113 + 216·X7 }→ s62 :|: s60 >= 0, s60 <= inf26, s61 >= 0, s61 <= 1 * s60 + 1, s62 >= 0, s62 <= 1 * X1 + 1 * s61 + 1, z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 113 + 216·X5 }→ s65 :|: s63 >= 0, s63 <= inf27, s64 >= 0, s64 <= 1 * s63 + 1, s65 >= 0, s65 <= 1 * s64 + 1 * X2 + 1, X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 222 + 216·X5 + 216·X9 }→ s70 :|: s66 >= 0, s66 <= inf28, s67 >= 0, s67 <= 1 * s66 + 1, s68 >= 0, s68 <= inf29, s69 >= 0, s69 <= 1 * s68 + 1, s70 >= 0, s70 <= 1 * s67 + 1 * s69 + 1, X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 330 + 216·X13 + 216·X23 + 216·X5 }→ s76 :|: s71 >= 0, s71 <= inf30, s72 >= 0, s72 <= 1 * s71 + 1, s73 >= 0, s73 <= inf31, s74 >= 0, s74 <= inf32, s75 >= 0, s75 <= 1 * s73 + 1 * s74 + 1, s76 >= 0, s76 <= 1 * s72 + 1 * s75 + 1, X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 330 + 216·X11 + 216·X17 + 216·X21 }→ s82 :|: s77 >= 0, s77 <= inf33, s78 >= 0, s78 <= inf34, s79 >= 0, s79 <= 1 * s77 + 1 * s78 + 1, s80 >= 0, s80 <= inf35, s81 >= 0, s81 <= 1 * s80 + 1, s82 >= 0, s82 <= 1 * s79 + 1 * s81 + 1, z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ -320 + 216·z }→ s85 :|: s83 >= 0, s83 <= inf36, s84 >= 0, s84 <= 2 * s83 + 3, s85 >= 0, s85 <= 1 * s84 + 1, z - 2 >= 0
activate(z) -{ -320 + 216·z }→ s88 :|: s86 >= 0, s86 <= inf37, s87 >= 0, s87 <= 1 * s86 + 1, s88 >= 0, s88 <= 2 * s87 + 3, z - 2 >= 0
activate(z) -{ 222 + 216·X10 + 216·X5 }→ s93 :|: s89 >= 0, s89 <= inf38, s90 >= 0, s90 <= 1 * s89 + 1, s91 >= 0, s91 <= inf39, s92 >= 0, s92 <= 2 * s91 + 3, s93 >= 0, s93 <= 1 * s90 + 1 * s92 + 1, X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 222 + 216·X14 + 216·X6 }→ s98 :|: s94 >= 0, s94 <= inf40, s95 >= 0, s95 <= 2 * s94 + 3, s96 >= 0, s96 <= inf41, s97 >= 0, s97 <= 1 * s96 + 1, s98 >= 0, s98 <= 1 * s95 + 1 * s97 + 1, z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']
s: runtime: O(1) [1], size: O(n1) [1 + z]
activate: runtime: O(n1) [108 + 216·z], size: EXP

(57) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed SIZE bound using CoFloCo for: 2nd
after applying outer abstraction to obtain an ITS,
resulting in: INF with polynomial bound: ?

(58) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 220 + 216·X110 + 216·X27 }→ s16 :|: s13 >= 0, s13 <= inf6, s14 >= 0, s14 <= inf7, s15 >= 0, s15 <= 1 * s13 + 1 * s14 + 1, s16 >= 0, s16 <= 1 * s15, X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 112 + 216·X26 }→ s22 :|: s20 >= 0, s20 <= inf9, s21 >= 0, s21 <= 2 * s20 + 3, s22 >= 0, s22 <= 1 * s21, z = 1 + X + (1 + X26), X26 >= 0, X >= 0
2nd(z) -{ 112 + 216·X20 }→ s55 :|: s53 >= 0, s53 <= inf23, s54 >= 0, s54 <= 1 * s53 + 1, s55 >= 0, s55 <= 1 * s54, X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
activate(z) -{ 221 + 216·X12 + 216·X22 }→ s1 :|: s >= 0, s <= inf, s' >= 0, s' <= inf', s'' >= 0, s'' <= 1 * s + 1 * s' + 1, s1 >= 0, s1 <= 1 * X1 + 1 * s'' + 1, X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 438 + 216·X11 + 216·X19 + 216·X21 + 216·X25 }→ s12 :|: s6 >= 0, s6 <= inf2, s7 >= 0, s7 <= inf3, s8 >= 0, s8 <= 1 * s6 + 1 * s7 + 1, s9 >= 0, s9 <= inf4, s10 >= 0, s10 <= inf5, s11 >= 0, s11 <= 1 * s9 + 1 * s10 + 1, s12 >= 0, s12 <= 1 * s8 + 1 * s11 + 1, X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ -320 + 216·z }→ s19 :|: s17 >= 0, s17 <= inf8, s18 >= 0, s18 <= 2 * s17 + 3, s19 >= 0, s19 <= 2 * s18 + 3, z - 2 >= 0
activate(z) -{ 220 + 216·X1'' + 216·X2'' }→ s26 :|: s23 >= 0, s23 <= inf10, s24 >= 0, s24 <= inf11, s25 >= 0, s25 <= 1 * s23 + 1 * s24 + 1, s26 >= 0, s26 <= 2 * s25 + 3, X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 113 + 216·X8 }→ s29 :|: s27 >= 0, s27 <= inf12, s28 >= 0, s28 <= 2 * s27 + 3, s29 >= 0, s29 <= 1 * X1 + 1 * s28 + 1, X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 113 + 216·X6 }→ s32 :|: s30 >= 0, s30 <= inf13, s31 >= 0, s31 <= 2 * s30 + 3, s32 >= 0, s32 <= 1 * s31 + 1 * X2 + 1, X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 222 + 216·X15 + 216·X6 }→ s37 :|: s33 >= 0, s33 <= inf14, s34 >= 0, s34 <= 2 * s33 + 3, s35 >= 0, s35 <= inf15, s36 >= 0, s36 <= 2 * s35 + 3, s37 >= 0, s37 <= 1 * s34 + 1 * s36 + 1, X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 330 + 216·X16 + 216·X24 + 216·X6 }→ s43 :|: s38 >= 0, s38 <= inf16, s39 >= 0, s39 <= 2 * s38 + 3, s40 >= 0, s40 <= inf17, s41 >= 0, s41 <= inf18, s42 >= 0, s42 <= 1 * s40 + 1 * s41 + 1, s43 >= 0, s43 <= 1 * s39 + 1 * s42 + 1, X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 330 + 216·X11 + 216·X18 + 216·X21 }→ s49 :|: s44 >= 0, s44 <= inf19, s45 >= 0, s45 <= inf20, s46 >= 0, s46 <= 1 * s44 + 1 * s45 + 1, s47 >= 0, s47 <= inf21, s48 >= 0, s48 <= 2 * s47 + 3, s49 >= 0, s49 <= 1 * s46 + 1 * s48 + 1, z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 221 + 216·X11 + 216·X21 }→ s5 :|: s2 >= 0, s2 <= inf'', s3 >= 0, s3 <= inf1, s4 >= 0, s4 <= 1 * s2 + 1 * s3 + 1, s5 >= 0, s5 <= 1 * s4 + 1 * X2 + 1, z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ -320 + 216·z }→ s52 :|: s50 >= 0, s50 <= inf22, s51 >= 0, s51 <= 1 * s50 + 1, s52 >= 0, s52 <= 1 * s51 + 1, z - 2 >= 0
activate(z) -{ 220 + 216·X1' + 216·X2' }→ s59 :|: s56 >= 0, s56 <= inf24, s57 >= 0, s57 <= inf25, s58 >= 0, s58 <= 1 * s56 + 1 * s57 + 1, s59 >= 0, s59 <= 1 * s58 + 1, z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 113 + 216·X7 }→ s62 :|: s60 >= 0, s60 <= inf26, s61 >= 0, s61 <= 1 * s60 + 1, s62 >= 0, s62 <= 1 * X1 + 1 * s61 + 1, z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 113 + 216·X5 }→ s65 :|: s63 >= 0, s63 <= inf27, s64 >= 0, s64 <= 1 * s63 + 1, s65 >= 0, s65 <= 1 * s64 + 1 * X2 + 1, X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 222 + 216·X5 + 216·X9 }→ s70 :|: s66 >= 0, s66 <= inf28, s67 >= 0, s67 <= 1 * s66 + 1, s68 >= 0, s68 <= inf29, s69 >= 0, s69 <= 1 * s68 + 1, s70 >= 0, s70 <= 1 * s67 + 1 * s69 + 1, X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 330 + 216·X13 + 216·X23 + 216·X5 }→ s76 :|: s71 >= 0, s71 <= inf30, s72 >= 0, s72 <= 1 * s71 + 1, s73 >= 0, s73 <= inf31, s74 >= 0, s74 <= inf32, s75 >= 0, s75 <= 1 * s73 + 1 * s74 + 1, s76 >= 0, s76 <= 1 * s72 + 1 * s75 + 1, X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 330 + 216·X11 + 216·X17 + 216·X21 }→ s82 :|: s77 >= 0, s77 <= inf33, s78 >= 0, s78 <= inf34, s79 >= 0, s79 <= 1 * s77 + 1 * s78 + 1, s80 >= 0, s80 <= inf35, s81 >= 0, s81 <= 1 * s80 + 1, s82 >= 0, s82 <= 1 * s79 + 1 * s81 + 1, z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ -320 + 216·z }→ s85 :|: s83 >= 0, s83 <= inf36, s84 >= 0, s84 <= 2 * s83 + 3, s85 >= 0, s85 <= 1 * s84 + 1, z - 2 >= 0
activate(z) -{ -320 + 216·z }→ s88 :|: s86 >= 0, s86 <= inf37, s87 >= 0, s87 <= 1 * s86 + 1, s88 >= 0, s88 <= 2 * s87 + 3, z - 2 >= 0
activate(z) -{ 222 + 216·X10 + 216·X5 }→ s93 :|: s89 >= 0, s89 <= inf38, s90 >= 0, s90 <= 1 * s89 + 1, s91 >= 0, s91 <= inf39, s92 >= 0, s92 <= 2 * s91 + 3, s93 >= 0, s93 <= 1 * s90 + 1 * s92 + 1, X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 222 + 216·X14 + 216·X6 }→ s98 :|: s94 >= 0, s94 <= inf40, s95 >= 0, s95 <= 2 * s94 + 3, s96 >= 0, s96 <= inf41, s97 >= 0, s97 <= 1 * s96 + 1, s98 >= 0, s98 <= 1 * s95 + 1 * s97 + 1, z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed: {2nd}
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']
s: runtime: O(1) [1], size: O(n1) [1 + z]
activate: runtime: O(n1) [108 + 216·z], size: EXP
2nd: runtime: ?, size: INF

(59) IntTrsBoundProof (UPPER BOUND(ID) transformation)


Computed RUNTIME bound using KoAT for: 2nd
after applying outer abstraction to obtain an ITS,
resulting in: O(n1) with polynomial bound: 447 + 864·z

(60) Obligation:

Complexity RNTS consisting of the following rules:

2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 220 + 216·X110 + 216·X27 }→ s16 :|: s13 >= 0, s13 <= inf6, s14 >= 0, s14 <= inf7, s15 >= 0, s15 <= 1 * s13 + 1 * s14 + 1, s16 >= 0, s16 <= 1 * s15, X110 >= 0, X27 >= 0, X >= 0, z = 1 + X + (1 + X110 + X27)
2nd(z) -{ 112 + 216·X26 }→ s22 :|: s20 >= 0, s20 <= inf9, s21 >= 0, s21 <= 2 * s20 + 3, s22 >= 0, s22 <= 1 * s21, z = 1 + X + (1 + X26), X26 >= 0, X >= 0
2nd(z) -{ 112 + 216·X20 }→ s55 :|: s53 >= 0, s53 <= inf23, s54 >= 0, s54 <= 1 * s53 + 1, s55 >= 0, s55 <= 1 * s54, X20 >= 0, X >= 0, z = 1 + X + (1 + X20)
activate(z) -{ 221 + 216·X12 + 216·X22 }→ s1 :|: s >= 0, s <= inf, s' >= 0, s' <= inf', s'' >= 0, s'' <= 1 * s + 1 * s' + 1, s1 >= 0, s1 <= 1 * X1 + 1 * s'' + 1, X1 >= 0, X12 >= 0, X22 >= 0, z = 1 + X1 + (1 + X12 + X22)
activate(z) -{ 438 + 216·X11 + 216·X19 + 216·X21 + 216·X25 }→ s12 :|: s6 >= 0, s6 <= inf2, s7 >= 0, s7 <= inf3, s8 >= 0, s8 <= 1 * s6 + 1 * s7 + 1, s9 >= 0, s9 <= inf4, s10 >= 0, s10 <= inf5, s11 >= 0, s11 <= 1 * s9 + 1 * s10 + 1, s12 >= 0, s12 <= 1 * s8 + 1 * s11 + 1, X11 >= 0, X21 >= 0, X19 >= 0, X25 >= 0, z = 1 + (1 + X11 + X21) + (1 + X19 + X25)
activate(z) -{ -320 + 216·z }→ s19 :|: s17 >= 0, s17 <= inf8, s18 >= 0, s18 <= 2 * s17 + 3, s19 >= 0, s19 <= 2 * s18 + 3, z - 2 >= 0
activate(z) -{ 220 + 216·X1'' + 216·X2'' }→ s26 :|: s23 >= 0, s23 <= inf10, s24 >= 0, s24 <= inf11, s25 >= 0, s25 <= 1 * s23 + 1 * s24 + 1, s26 >= 0, s26 <= 2 * s25 + 3, X1'' >= 0, z = 1 + (1 + X1'' + X2''), X2'' >= 0
activate(z) -{ 113 + 216·X8 }→ s29 :|: s27 >= 0, s27 <= inf12, s28 >= 0, s28 <= 2 * s27 + 3, s29 >= 0, s29 <= 1 * X1 + 1 * s28 + 1, X1 >= 0, z = 1 + X1 + (1 + X8), X8 >= 0
activate(z) -{ 113 + 216·X6 }→ s32 :|: s30 >= 0, s30 <= inf13, s31 >= 0, s31 <= 2 * s30 + 3, s32 >= 0, s32 <= 1 * s31 + 1 * X2 + 1, X6 >= 0, z = 1 + (1 + X6) + X2, X2 >= 0
activate(z) -{ 222 + 216·X15 + 216·X6 }→ s37 :|: s33 >= 0, s33 <= inf14, s34 >= 0, s34 <= 2 * s33 + 3, s35 >= 0, s35 <= inf15, s36 >= 0, s36 <= 2 * s35 + 3, s37 >= 0, s37 <= 1 * s34 + 1 * s36 + 1, X6 >= 0, z = 1 + (1 + X6) + (1 + X15), X15 >= 0
activate(z) -{ 330 + 216·X16 + 216·X24 + 216·X6 }→ s43 :|: s38 >= 0, s38 <= inf16, s39 >= 0, s39 <= 2 * s38 + 3, s40 >= 0, s40 <= inf17, s41 >= 0, s41 <= inf18, s42 >= 0, s42 <= 1 * s40 + 1 * s41 + 1, s43 >= 0, s43 <= 1 * s39 + 1 * s42 + 1, X16 >= 0, z = 1 + (1 + X6) + (1 + X16 + X24), X6 >= 0, X24 >= 0
activate(z) -{ 330 + 216·X11 + 216·X18 + 216·X21 }→ s49 :|: s44 >= 0, s44 <= inf19, s45 >= 0, s45 <= inf20, s46 >= 0, s46 <= 1 * s44 + 1 * s45 + 1, s47 >= 0, s47 <= inf21, s48 >= 0, s48 <= 2 * s47 + 3, s49 >= 0, s49 <= 1 * s46 + 1 * s48 + 1, z = 1 + (1 + X11 + X21) + (1 + X18), X11 >= 0, X21 >= 0, X18 >= 0
activate(z) -{ 221 + 216·X11 + 216·X21 }→ s5 :|: s2 >= 0, s2 <= inf'', s3 >= 0, s3 <= inf1, s4 >= 0, s4 <= 1 * s2 + 1 * s3 + 1, s5 >= 0, s5 <= 1 * s4 + 1 * X2 + 1, z = 1 + (1 + X11 + X21) + X2, X11 >= 0, X21 >= 0, X2 >= 0
activate(z) -{ -320 + 216·z }→ s52 :|: s50 >= 0, s50 <= inf22, s51 >= 0, s51 <= 1 * s50 + 1, s52 >= 0, s52 <= 1 * s51 + 1, z - 2 >= 0
activate(z) -{ 220 + 216·X1' + 216·X2' }→ s59 :|: s56 >= 0, s56 <= inf24, s57 >= 0, s57 <= inf25, s58 >= 0, s58 <= 1 * s56 + 1 * s57 + 1, s59 >= 0, s59 <= 1 * s58 + 1, z = 1 + (1 + X1' + X2'), X2' >= 0, X1' >= 0
activate(z) -{ 113 + 216·X7 }→ s62 :|: s60 >= 0, s60 <= inf26, s61 >= 0, s61 <= 1 * s60 + 1, s62 >= 0, s62 <= 1 * X1 + 1 * s61 + 1, z = 1 + X1 + (1 + X7), X1 >= 0, X7 >= 0
activate(z) -{ 113 + 216·X5 }→ s65 :|: s63 >= 0, s63 <= inf27, s64 >= 0, s64 <= 1 * s63 + 1, s65 >= 0, s65 <= 1 * s64 + 1 * X2 + 1, X5 >= 0, z = 1 + (1 + X5) + X2, X2 >= 0
activate(z) -{ 222 + 216·X5 + 216·X9 }→ s70 :|: s66 >= 0, s66 <= inf28, s67 >= 0, s67 <= 1 * s66 + 1, s68 >= 0, s68 <= inf29, s69 >= 0, s69 <= 1 * s68 + 1, s70 >= 0, s70 <= 1 * s67 + 1 * s69 + 1, X5 >= 0, X9 >= 0, z = 1 + (1 + X5) + (1 + X9)
activate(z) -{ 330 + 216·X13 + 216·X23 + 216·X5 }→ s76 :|: s71 >= 0, s71 <= inf30, s72 >= 0, s72 <= 1 * s71 + 1, s73 >= 0, s73 <= inf31, s74 >= 0, s74 <= inf32, s75 >= 0, s75 <= 1 * s73 + 1 * s74 + 1, s76 >= 0, s76 <= 1 * s72 + 1 * s75 + 1, X5 >= 0, z = 1 + (1 + X5) + (1 + X13 + X23), X13 >= 0, X23 >= 0
activate(z) -{ 330 + 216·X11 + 216·X17 + 216·X21 }→ s82 :|: s77 >= 0, s77 <= inf33, s78 >= 0, s78 <= inf34, s79 >= 0, s79 <= 1 * s77 + 1 * s78 + 1, s80 >= 0, s80 <= inf35, s81 >= 0, s81 <= 1 * s80 + 1, s82 >= 0, s82 <= 1 * s79 + 1 * s81 + 1, z = 1 + (1 + X11 + X21) + (1 + X17), X11 >= 0, X21 >= 0, X17 >= 0
activate(z) -{ -320 + 216·z }→ s85 :|: s83 >= 0, s83 <= inf36, s84 >= 0, s84 <= 2 * s83 + 3, s85 >= 0, s85 <= 1 * s84 + 1, z - 2 >= 0
activate(z) -{ -320 + 216·z }→ s88 :|: s86 >= 0, s86 <= inf37, s87 >= 0, s87 <= 1 * s86 + 1, s88 >= 0, s88 <= 2 * s87 + 3, z - 2 >= 0
activate(z) -{ 222 + 216·X10 + 216·X5 }→ s93 :|: s89 >= 0, s89 <= inf38, s90 >= 0, s90 <= 1 * s89 + 1, s91 >= 0, s91 <= inf39, s92 >= 0, s92 <= 2 * s91 + 3, s93 >= 0, s93 <= 1 * s90 + 1 * s92 + 1, X5 >= 0, X10 >= 0, z = 1 + (1 + X5) + (1 + X10)
activate(z) -{ 222 + 216·X14 + 216·X6 }→ s98 :|: s94 >= 0, s94 <= inf40, s95 >= 0, s95 <= 2 * s94 + 3, s96 >= 0, s96 <= inf41, s97 >= 0, s97 <= 1 * s96 + 1, s98 >= 0, s98 <= 1 * s95 + 1 * s97 + 1, z = 1 + (1 + X6) + (1 + X14), X6 >= 0, X14 >= 0
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 4 }→ 1 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X2 = XS, X1 = 0, XS >= 0
activate(z) -{ 3 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 3 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 4 }→ 1 + X1' + X2' :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2, X1' >= 0, X2' >= 0, X1 = X1', X2 = X2'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
s(z) -{ 1 }→ 1 + z :|: z >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0

Function symbols to be analyzed:
Previous analysis results are:
from: runtime: O(1) [1], size: O(n1) [3 + 2·z]
sel: runtime: O(1) [1], size: O(n1) [z']
head: runtime: O(1) [1], size: O(n1) [z]
take: runtime: O(1) [1], size: O(n1) [1 + z + z']
s: runtime: O(1) [1], size: O(n1) [1 + z]
activate: runtime: O(n1) [108 + 216·z], size: EXP
2nd: runtime: O(n1) [447 + 864·z], size: INF

(61) FinalProof (EQUIVALENT transformation)

Computed overall runtime complexity

(62) BOUNDS(1, n^1)